草庐IT

phpstorm 和 phpunit

全部标签

php - Zend 应用程序的 PHPUnit 测试策略

我一直在用Zend开发一个典型的博客风格的应用程序。到目前为止,我一直在进行最少的测试,但现在我需要进行防弹测试,并且我正在寻求有关我的单元测试策略的一些建议或提示。模型:为了测试模型,我一直在扩展PHPUnit_Framework_TestCase。这似乎工作正常。我已经阅读了Zend_Test_PHPUnit_DatabaseTestCase,但是我不确定我会在哪里使用它?我认为这可能不需要我在每次测试之间删除/创建数据库,但事实似乎并非如此?在每次测试之间删除/创建数据库变得非常痛苦,因为我有很多测试数据。有什么简单的方法可以解决这个问题(例如模拟数据库?),还是我应该减少测试数

PHPUnit 依赖注入(inject)到测试用例中

我想知道是否可以通过例如将依赖项注入(inject)从PHPUnit_Framework_TestCase派生的类中一些上下文测试套件-以PHPUnit可以处理的方式,而不管它是否已通过phpunit.xml配置文件或其他方式手动调用?请考虑以下示例:现在我想为实现AnyGreeter的类提供一些通用测试,例如:getGreeter();$message=$greeter->greet("world");$this->assertContains("world",$message);}publicfunctionsetGreeter(AnyGreeter$greeter){$this-

PHPStorm 自动完成数组键(动态插入)

我正在使用Pimple依赖注入(inject)器,每次我使用容器中的依赖项时,我都会忍不住仔细检查用于获取依赖项的key的拼写:$ioc=newPimple();//1.Definesomeobject$ioc["some-key"]=$ioc->share(function($c){/*...*/});//2.Useit$ioc["som...//Openconfigfileandcheckspelling...PHPStorm是否有某种方法可以查找这些属性并提供自动完成功能?我考虑过使用类似的东西定义所有这些键define('SOME_KEY','some-key');//...$

php - 如何在 PhpStorm 中检测到更改时刷新文件

我和我的同事正在网络共享的PhpStorm中处理同一个项目,碰巧我们正在编辑同一个Javascript文件,但是当我更改文件时,他的计算机上的更新文件有延迟并且我也一样。有没有办法让PhpStorm在检测到更改时更新文件?没有这个延迟? 最佳答案 转到文件>同步刷新项目中的文件或使用快捷方式Ctrl+Alt+Y在windows和Cmd+Alt+Y在Mac中。 关于php-如何在PhpStorm中检测到更改时刷新文件,我们在StackOverflow上找到一个类似的问题:

PHPstorm PHPunit 代码共同覆盖

当我在PHPstorm中运行我的测试套件时,所有代码覆盖率都返回0%(我知道这不是真的),当我从命令行运行PHPunit时,记录的HTML输出文档显示我实际上一定要有报道并列出所有详细信息。在PHPstorm中,我将PHP解释器设置为/usr/local/bin/php(PHP5.6.7)和xdebug2.3.2(屏幕截图:https://dl.dropboxusercontent.com/u/379071/Screen%20Shot%202015-04-20%20at%206.57.39%20PM.png)。在我的PHPunit首选项中,我将“脚本路径”设置为我的composerau

PhpUnit 忽略了它的 XML 配置文件中的*一些*指令

在每一步都使用PHPUnit开发库时,一切都很好。然后我把这个库推到网上并删除了文件夹。一段时间后,我克隆了一个新的存储库实例以继续开发,在克隆项目的根文件夹中运行完全相同的PHPUnit二进制文件(通过Composer在全局安装)(因此,有效地再现了原始条件),并注意到即使PHPUnit读取文件夹内的配置(它是这样说的),它也忽略了一些值,即使用颜色和目标仅tests文件夹。相反,它确实运行了我所有的测试并且它们都成功了,但它生成了PHPUnit二进制文件所在的文件夹的覆盖范围,并且更深。然后我尝试了同样的方法,但使用的是新下载的phpunit.phar。这一次产生了不同但也很奇怪的

php - 如何在没有 PHPUnit 的情况下使用 PHP_CodeCoverage?

出于某些原因,我想使用PHP_CodeCoverage来分析我的应用程序的代码覆盖率,而不是使用PHP单元(通过手动测试)。我知道如何长期使用XDebug(跨多个请求,通过将代码覆盖分析保存在共享内存中)。在一些测试后构建简单的XML文件,如clover.xml(或任何其他格式)对于XDebug的输出并不困难(它是一个简单的关联数组,并且已记录)。有没有办法指示PHP_CodeCoverage使用clover.xml(或其他文件格式)以生成HTML报告(非常好)。或者您是否知道一个简单的hack依赖PHP_CodeCoverage内部函数来直接处理XDebug的输出以生成HTML报告。

php - 如何使用 phpunit api 请求发送 header ?

我正在尝试使用phpunit测试我在laravel5中编写的Web服务。我是这个测试框架的新手。该应用程序使用JWT进行身份验证,该身份验证在请求的header中传递。我的测试看起来像这样:$response=$this->call('POST','authenticate',['username'=>'carparts','email'=>'admin@admin.com','password'=>'password']);$token='Bearer'.json_decode($response->getContent())->token;$response=$this->call

PHPUnit:我如何模拟这个文件创建?

我想使用vfsstream模拟文件的创建classMyClass{publicfunctioncreateFile($dirPath){$name=time()."-RT";$file=$dirPath.'/'.$name.'.tmp';fopen($file,"w+");if(file_exists($file)){return$name.'.tmp';}else{return'';}}}但是当我尝试测试文件创建时:$filename=$myClass->createFile(vfsStream::url('/var/www/app/web/exported/folder'));我收

php - 为什么 PHPUnit 在生成覆盖率报告时要执行代码?

亲爱的stackoverflowers,我们正在开发一个基于cakephp的Web应用程序。CakePHP被证明有点难以以TDD方式使用,因此我们试图通过将所有业务逻辑提取到不依赖于cakephp的类中,在它自己的框架上开发尽可能少的代码。因此,我们能够使用phpunit测试我们的库,问题最少。然而,我们确实希望将未经测试的代码包含在我们的覆盖率报告中,而不是任何东西,以密切关注cake和我们无法测试的库之间的胶水代码量。那么问题是,当告诉phpunit解释这些代码时,它会疯狂地解析和执行cakephp的代码,并且它会崩溃。我的问题是:为什么phpunit会执行这段代码?这里有什么我们